// pvpkeet/types.go
package pvpkeet

import "github.com/Nik-U/pbc"

// SystemParams 对应 Python中的 par
type SystemParams struct {
	Pairing *pbc.Pairing
	G       *pbc.Element // G1群的生成元 g
	H       *pbc.Element // G1群的生成元 h
}

// UserKeyPair 对应 Python中的 user_keys
type UserKeyPair struct {
	Pku *pbc.Element // 公钥 u = g^s
	Sku *pbc.Element // 私钥 s
}

// CloudKeyPair 对应 Python中的 cloud_keys
type CloudKeyPair struct {
	Pkc *pbc.Element // 公钥 pkc = h^α
	Skc *pbc.Element // 私钥 α
}

// Ciphertext 对应 Python中的 CT
type Ciphertext struct {
	C1 *pbc.Element
	C2 *pbc.Element
	C3 *pbc.Element // k (in Zr)
	C4 *pbc.Element
}

// Proof 对应 Python中的 proof
type Proof struct {
	Pi_A    *pbc.Element
	Pi_B    *pbc.Element
	Theta   *pbc.Element
	Theta_v *pbc.Element
}
